“AWS を使って API 公開したくなったときに検討すべき6つの項目”というタイトルで DevelopersIO 2023 に登壇しました #devio2023
お疲れさまです。とーちです。
7/7(金)〜7/8(土)の2日間にかけて弊社クラスメソッドにてDevelopersIO 2023 〜GET だけじゃもったいない、PUT して POST する 2 日間〜というイベントを開催しました。
ご来場頂いた皆様ありがとうございます! 楽しんで頂けましたでしょうか?
このイベントで「AWS を使って API 公開したくなったときに検討すべき6つの項目」というタイトルで登壇したので、登壇レポートをお送りしたいと思います。
登壇資料
資料の内容について
AWS 上で公開 API システムを作るときに検討が必要そうなポイントをいくつかの項目に分けてお伝えするという内容になっています。
以下、項目ごとに概要を記載します。
アーキテクチャ
AWS で API を作るときの鉄板パターンとも言える API Gateway+Lambda を中心にキャッシュや API Gateway の HTTP API と REST API の使い分けといったところの話をさせて頂きました。
また、場合によっては API Gateway+Lambda のパターンではなく、ALB+ECS 等のパターンも検討すべきといった話をしました。
セキュリティ
セキュリティ対策を考える上では、まず自分たちのシステムを深く把握しどこにどういった攻撃をされると辛いかを知った上でそれぞれの脅威に対して必要な対策をしていきましょうという話をしました。
バージョン管理
公開 API のメジャーバージョンアップは慎重にやる必要があること、影響を抑えるためにどのような手法でメジャーバージョンアップをすればいいのかを話しました。
認証認可
認証認可をする際の ID 管理基盤の選択肢として Cognito と Auth0 でどのような違いがあるのかを話しました。
ドキュメント管理
OpenAPI を使って GitHub Actions で API ドキュメントをデプロイする実例や最近のトレンドについて簡単に触れました。
監視
オブザーバビリティの考えに沿ってログ、メトリクス、トレースを取得しましょうという話をしました。
まとめ
以上、登壇資料と内容の簡単なご紹介でした。
200人以上が入る会場でのオフライン登壇ということでとても貴重な体験になりました。
また登壇資料を作成するにあたってのインプット・アウトプットを通して、自分自身成長出来たと感じました。
今後も積極的に登壇出来ればと思っています。
この記事が誰かのお役に立てばなによりです。
以上、とーちでした。
登壇するにあたって参考にしたブログ・書籍
登壇するにあたって多くの書籍・記事を参考にさせて頂きました。この場を借りてお礼申し上げます。
書籍
ブログ記事等
- Amazon API Gateway は「HTTP API」と「REST API」のどちらを選択すれば良いのか? #reinvent | DevelopersIO
- AWS での分散負荷テスト | 実装 | AWS ソリューション
- Amazon API Gateway の「キーごとのキャッシュの無効化」機能を使って特定リソースパスのみキャッシュ更新をしてみた | DevelopersIO
- アップデート Amazon CloudFront がオリジン Cache-Control ヘッダーの stale-while-revalidate と stale-if-error をサポートしました | DevelopersIO
- WebAPI を構築する際に API Gateway+Lambda を選択するべきか?
- 脅威のモデル化のセキュリティの基礎 - Training | Microsoft Learn
- メルカリの脅威モデリングプロセス | メルカリエンジニアリング
- 脅威分析において Microsoft Threat Modeling Tool をより便利に使う方法 - FFRI エンジニアブログ
- レスポンスにセキュリティヘッダーを追加する - Amazon CloudFront
- セマンティック バージョニング 2.0.0 | Semantic Versioning
- よりよくわかる認証と認可 | DevelopersIO
- Fastify で作る API に Zod でスキーマバリデーションをかけながら型定義と実用レベルの OpenAPI 仕様を自動生成する | DevelopersIO
- One Observability Workshop
- AWS Lambda Powertools が便利すぎた #serverless #python | DevelopersIO